package com.newtouch.cq.lang.config;

import lombok.Getter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

/**
 * token缓存相关配置的配置文件
 *
 * @author alex
 * @Date: 2021/1/25
 */
@Getter
@Configuration
@ConfigurationProperties("mcc.token")
public class TokenCacheProperties {

    /**
     * prifix
     **/
    public static String prifix = "mcc:token:";//缓存前缀
    public static int maxOnlineCount = 0;//统一账号最多存在token个数,默认0，表示不限制
    public static int length = 64;//token长度
    //    public static int QRCODE_VALIDATE_MINUTES = 5;
//    public static String QRCODE_BASE_URL = "";
    public static boolean enableloginValidateCode = true;
    public static boolean renewal = false;//token是否重载
    public static long timeOut = 1800; //token过期时间
    public static long timeOutDelay = 5; //token延迟过期时间过期时间

    /**
     * 用于静态常量prifix的初始化
     *
     * @param prifix
     */
    public void setPrifix(String prifix) {
        this.prifix = prifix;
    }

    /**
     * 用于静态常量maxOnlineCount的初始化，默认0，表示不限制
     *
     * @param maxOnlineCount
     */
    public void setMaxOnlineCount(int maxOnlineCount) {
        this.maxOnlineCount = maxOnlineCount;
    }

    /**
     * 用于静态常量LENGTH的初始化，默认64位
     *
     * @param length
     */
    public void setLength(int length) {
        this.length = length;
    }


    /**
     * 用于静态常量timeOut的初始化，默认30分钟
     *
     * @param timeOut
     */
    public void setTimeOut(long timeOut) {
        this.timeOut = timeOut;
    }

    /**
     * 用于静态常量timeOutDelay的初始化，默认5秒
     *
     * @param timeOutDelay
     */
    public void setTimeOutDelay(long timeOutDelay) {
        this.timeOutDelay = timeOutDelay;
    }

    /**
     * 用于静态常量renewal的初始化，默认不重载
     *
     * @param renewal
     */
    public void setRenewal(boolean renewal) {
        this.renewal = renewal;
    }

    public void setEnableloginValidateCode(boolean enableloginValidateCode) {
        TokenCacheProperties.enableloginValidateCode = enableloginValidateCode;
    }
}
